kernel_args: enable and fix argv methods
authorFelix Krull <f_krull@gmx.de>
Sat, 31 Aug 2019 12:52:37 +0000 (14:52 +0200)
committerColin Walters <walters@verbum.org>
Fri, 6 May 2022 16:53:54 +0000 (12:53 -0400)
rust-bindings/rust/src/kernel_args.rs
rust-bindings/rust/src/tests/kernel_args.rs

index 018964a46bae5b92ce143b0aa7aac0a390c1876e..ce7b3f7ad30f60c88eb94a4a9ef80ff0701e0e28 100644 (file)
@@ -29,8 +29,8 @@ impl KernelArgs {
         }
     }
 
-    /*#[cfg(any(feature = "v2019_3", feature = "dox"))]
-    pub fn append_argv(&mut self, argv: &str) {
+    #[cfg(any(feature = "v2019_3", feature = "dox"))]
+    pub fn append_argv(&mut self, argv: &[&str]) {
         unsafe {
             ostree_sys::ostree_kernel_args_append_argv(
                 self.to_glib_none_mut().0,
@@ -40,7 +40,7 @@ impl KernelArgs {
     }
 
     #[cfg(any(feature = "v2019_3", feature = "dox"))]
-    pub fn append_argv_filtered(&mut self, argv: &str, prefixes: &str) {
+    pub fn append_argv_filtered(&mut self, argv: &[&str], prefixes: &[&str]) {
         unsafe {
             ostree_sys::ostree_kernel_args_append_argv_filtered(
                 self.to_glib_none_mut().0,
@@ -48,7 +48,7 @@ impl KernelArgs {
                 prefixes.to_glib_none().0,
             );
         }
-    }*/
+    }
 
     #[cfg(any(feature = "v2019_3", feature = "dox"))]
     pub fn append_proc_cmdline<P: IsA<gio::Cancellable>>(
@@ -147,15 +147,15 @@ impl KernelArgs {
         }
     }
 
-    /*#[cfg(any(feature = "v2019_3", feature = "dox"))]
-    pub fn replace_argv(&mut self, argv: &str) {
+    #[cfg(any(feature = "v2019_3", feature = "dox"))]
+    pub fn replace_argv(&mut self, argv: &[&str]) {
         unsafe {
             ostree_sys::ostree_kernel_args_replace_argv(
                 self.to_glib_none_mut().0,
                 argv.to_glib_none().0,
             );
         }
-    }*/
+    }
 
     #[cfg(any(feature = "v2019_3", feature = "dox"))]
     pub fn replace_take(&mut self, arg: &str) {
index 0e081882bd201dc90d9ec3aa16993bd7ec5eec62..a24a3cb85d964143b423c8f28ef4da603508fbf2 100644 (file)
@@ -37,3 +37,27 @@ fn should_convert_from_string() {
     let args = KernelArgs::from(String::from("arg1 arg2 arg3=value"));
     assert_eq!(args.to_strv(), vec!["arg1", "arg2", "arg3=value"]);
 }
+
+#[test]
+fn should_append_argv() {
+    let mut args = KernelArgs::new();
+    args.append_argv(&["arg1", "arg2=value", "arg3", "arg4=value"]);
+    assert_eq!(args.to_string(), "arg1 arg2=value arg3 arg4=value");
+}
+
+#[test]
+fn should_append_argv_filtered() {
+    let mut args = KernelArgs::new();
+    args.append_argv_filtered(
+        &["prefix.arg1", "arg2", "prefix.arg3", "arg4=value"],
+        &["prefix"],
+    );
+    assert_eq!(args.to_string(), "arg2 arg4=value");
+}
+
+#[test]
+fn should_replace_argv() {
+    let mut args = KernelArgs::from_string("arg1=value1 arg2=value2 arg3");
+    args.replace_argv(&["arg1=value3", "arg3=value4", "arg4"]);
+    assert_eq!(args.to_string(), "arg1=value3 arg2=value2 arg3=value4 arg4");
+}